【js-6】域名,cookie是什么?有什么用处?cookie session的区别?cookie的失效期?


小课堂【武汉小课堂】

分享人:肖浩宇

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

1.什么是IP地址

互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给网络上使用网际协议(英语:Internet Protocol, IP)的设备的数字标签。IP地址是唯一的。常见的IP地址分为IPv4与IPv6两大类。可以把IP地址类比为一个电话号码,180.149.132.47即是一个IP地址。

2.什么是域名

网域名称(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。可以理解为联系人名称,如www.baidu.com就是一个域名。

3.什么是DNS

网域名称系统(DNS,Domain Name System)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个 布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。DNS将域名转换为IP地址的过程叫解析, 域名必须对应一个IP地址,而IP地址不一定只对应一个域名。可以把DNS理解为一个通讯录。

4.什么是cookie

Cookie 是一小段文本信息,以键值对的形式存储在客户端,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。

5.什么是session

Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。
用户打开浏览器访问一起网站,浏览器的COOKIE中会生成sessionID,在每次请求时都会自动带上sessionID,然后服务器端根据sessionID找到对应的session值。
sessionID就相当于是一个钥匙,服务器上存session的地方相当于一个柜子,只能拿自己的钥匙开自己的柜子取自己的东西。

session一般存储用户相关的的信息,如用户登录状态、权限控制等,其他的信息也可存。另外就是无论你站点上的用户是否登录都会生成sessionID。

2.知识剖析

1.域名的用处

  • 比IP地址更容易记忆
  • 有利于SEO(搜索引擎优化)

2.Cookie的用处

Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。cookie可以解决此问题。

  • cookie可以跟踪会话,确认访问者的身份。
  • cookie可以将用户登录凭据保存在本地,cookie到期之前再访问该服务器就不必再登录了。

3.常见问题

1.cookie和session的的区别

  • cookie数据存放在客户的浏览器上,session数据放在服务器上。
  • cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session
  • session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。
  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

所以个人建议:将登陆信息等重要信息存放为SESSION其他信息如果需要保留,可以放在COOKIE中

2.cookie的有效期

分为会话cookie和持久cookie

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。 如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。 存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

4.解决方案

5.编码实战

在使用JavaScript存取 cookie 时,必须要使用Document对象的 cookie 属性;一行代码介绍如何创建和修改一个 cookie :

                
              document.cookie  = 'username=Darren'
                
            

以上代码中'username'表示 cookie 名称,'Darren'表示这个名称对应的值。假设 cookie 名称并不存在,那么就是创建一个新的 cookie;如果存在就是修改了这个 cookie 名称对应的值。如果要多次创建 cookie ,重复使用这个方法即可。

6.扩展思考

cookie与本地存储之间的区别

1. cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

2. cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

3. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

7.参考文献

参考一:session到底是什么?

参考二:Cookie/Session机制详解

参考三:wiki-Cookie

参考四:cookie 和session 的区别详解

8.更多讨论

IPv4和IPv6的区别

IPv4,由四组数字组合而成,由句点隔开(如207.44.214.87);IPv6,由8组4位16进制数表示,用冒号隔开(如2001:0db8:0000:0042:0000:8a2e:0370:7334)。

IPv6的优点:

  • 更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
  • 更小的路由表。IPv6能使得路由器能在路由表中用一条记录(Entry)表示一片子网,提高了路由器转发数据包的速度。
  • 增强的组播(Multicast)支持以及对流的支持(Flow-control)。这使得网络上的多媒体应用有了长足发展的机会。
  • 加入了对自动配置(Auto-configuration)的支持。使得网络(尤其是局域网)的管理更加方便和快捷.
  • 更高的安全性.在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验。

鸣谢

感谢大家观看

BY : 任昊 | 刘洪运| 肖浩宇